package com.example.chessbattleplatform.utils;

import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

@Slf4j
@UtilityClass
public class GetLocalDateTimeUtils {
    //SimpleDateFormat 的日期时间格式字符串是由一系列的模式字母组成的。这些模式字母代表日期时间的不同部分，如年、月、日、小时、分钟、秒等。下面是一些常见的模式字母：
    //
    //y：年份（例如，“yy” 表示年份的后两位，“yyyy” 表示完整的年份）。
    //M：月份（1 到 12 或 01 到 12）。
    //d：日期（1 到 31 或 01 到 31）。
    //H：小时（0 到 23 或 00 到 23）。
    //h：小时（1 到 12 或 01 到 12）。
    //m：分钟（0 到 59或00到59）。
    //s：秒（0 到 59 或 00 到 59）。
    //S：毫秒。
    public String GetLocalDateTimeToString() {
        // 获取时间
        LocalDateTime date = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); // get the current date

        // 时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        // 2025-3-27
        String uploadFormat = date.format(formatter);

//        log.info("获取时间{}", uploadFormat);

        return uploadFormat;
    }
    public String GetLocalDateTimeToStrings() {
        // 获取时间
        LocalDateTime date = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); // get the current date

        // 时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        // 2025-3-27
        String uploadFormat = date.format(formatter);

//        log.info("获取时间{}", uploadFormat);

        return uploadFormat;
    }
    public String GetLocalDateTimeFoWinToStrings() {
        // 获取时间
        LocalDateTime date = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); // get the current date

        // 时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH.mm.ss");

        // 2025-3-27
        String uploadFormat = date.format(formatter);

//        log.info("获取时间{}", uploadFormat);

        return uploadFormat;
    }

    public String GetLocalDateTimeToStrings(String Pattern) {
        // 获取时间
        LocalDateTime date = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); // get the current date

        // 时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Pattern);

        // 2025-3-27
        String uploadFormat = date.format(formatter);

//        log.info("获取时间{}", uploadFormat);

        return uploadFormat;
    }

    public LocalDateTime GetLocalDateTime() {
        // 获取时间
        LocalDateTime date = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); // get the current date

//        log.info("获取时间{}", date);

        return date;
    }
}
